// webpack它是运行在nodejs环境中的，所以它里面的配置写法使用commonjs规范
const { resolve } = require('path')
// 配置打包后生成访问html模板文件
const HtmlWebpackPlugin = require('html-webpack-plugin')
// 在下次打包时主动删除上一次的打包目录
const { CleanWebpackPlugin } = require('clean-webpack-plugin')

module.exports = {
  // 指定打包编译的模式 development【开发】|production【生产】
  mode: 'development',
  // 指定打包入口文件 默认找的是src/index.js文件，可以修改
  // 字符串 | 数组  |  对象
  entry: './src/main.js',
  // 打包出口
  output: {
    // 绝对路径
    path: resolve('./dist'),
    // 打包生成后的主访问文件
    filename: 'main.js'
  },
  // 加载器
  module: {
    // 匹配的规则，扩展名，正则
    rules: [
      // art
      {
        test: /\.art$/i,
        loader: "art-template-loader"
      }
    ]
  },
  // 插件
  plugins: [
    new CleanWebpackPlugin(),
    new HtmlWebpackPlugin({
      // 指定模板路径
      template: resolve('./public/index.html')
    })
  ],
  // 开发模式 -- devServer它内置express,它就是express服务
  devServer: {
    port: 3000,
    // 编译进程
    progress: true,
    // 自动打开浏览器 true自动打开， false不自动打开
    open: false,
    // quiet: true,
    // devServer中可以写代理配置
    proxy: {
      // 一旦devServer服务器接受到 /api开头的请求，就会把请求转发到另一个服务器
      '/api': {
        target: 'https://api.iynn.cn/film',
        changeOrigin: true,
        pathRewrite: {
        }
      }
    }
  }

}
